package com.funong.matrix.biz.user.facade;

import com.funong.matrix.biz.user.pojo.dto.CompanyDeptDTO;
import com.funong.matrix.biz.base.entity.SysCompanyEntity;
import com.funong.matrix.core.dto.QueryDTO;
import com.funong.matrix.core.dto.Result;

import java.util.List;

/**
 * @author wanjialin
 * @version 1.0
 * @date 2023/5/18
 */
public interface SysCompanyFacade {

    /**
     * 条件查询公司部门树状图
     *
     * @param sysCompanyEntity
     * @return
     */
    List<CompanyDeptDTO> queryCompanyDept(SysCompanyEntity sysCompanyEntity);


    /**
     * 条件查询公司树状图
     *
     * @param sysCompanyEntity
     * @return
     */
    List<CompanyDeptDTO> queryCompanyDendrogram(SysCompanyEntity sysCompanyEntity);

    /**
     * 查询公司信息
     *
     * @param queryDTO
     * @return
     */
    Result queryCompany(QueryDTO<SysCompanyEntity> queryDTO);

    /**
     * 根据id查询公司信息
     *
     * @param Id
     * @return
     */
    SysCompanyEntity queryCompanyById(Integer Id);

    /**
     * 添加公司信息
     *
     * @param sysCompanyEntity
     * @return
     */
    Boolean saveCompany(SysCompanyEntity sysCompanyEntity);


    /**
     * 修改公司信息
     *
     * @param sysCompanyEntity
     * @return
     */
    Boolean updateCompany(SysCompanyEntity sysCompanyEntity);

    /**
     * 删除公司信息
     *
     * @param
     * @return
     */
    Boolean deleteCompany(Integer id);

    /**
     * 根据id启用/禁用公司
     *
     * @param id
     * @return
     */
    Boolean updateCompanyStatus(Integer id);

}
